home *** CD-ROM | disk | FTP | other *** search
/ AppleScript - The Beta Release / AppleScript - The Beta Release.iso / Open Me First / AppleScript™ Beta Release Notes next >
Text File  |  1992-11-25  |  13KB  |  125 lines

  1. AppleScript™ Beta Release Notes
  2. ============================
  3.  
  4. Code Names:
  5. -----------------------------
  6. Some of the parts of AppleScript don't have real names yet. "Toy Surprise" is one, of course. "Applet" and "Droplet" are also unofficial names.
  7.  
  8.  
  9. Installation Warnings:
  10. -----------------------------
  11. • If you were using any alpha builds of AppleScript, remove all outdated files before installing:
  12.     • AEMAsInit.  Now named Apple® Event Manager.
  13.     • ASFX.  Now named Finder Scripting Extension.
  14.   • Script Menu Extension. Now named Scripting Menu Extension.
  15.   • Applet Extension. Now folded into the AppleScript extension.
  16.   • Generic Scripting Component. Now folded into the AppleScript extension.
  17.     • Delete old versions of Toy Surprise, Gustav, and the AppleScript extension.
  18. • Make a backup copy of your Finder and Network Extension if you plan to Custom Install the Scriptable Finder. Then you can later de-install the Scriptable Finder by dragging the Finder and Network Extension to the trash, moving the backups into place, and restarting.
  19.  
  20.  
  21. AppleScript Problems:
  22. -----------------------------
  23. • The unparsing process is known to fail if a garbage collection occurs during unparsing.  Although this happens very infrequently (it is rare that GC occurs during unparsing) it is a serious problem and will be remedied in a future version.
  24. • Debugger break: “Bad forwarding pointer” occurs intermittently after extensive use. Quit (close component connections) and restart to make it go away.
  25. • Scripting Additions don't work with some earlier AEMAsInit extensions.
  26. • The Application "name" standard file dialog only shows files whose names start with the name given.
  27. • AppleScript requires at least 8k of space in the application heap. It will grab 64k if it can get it, and this space may grow if a script creates a lot of internal (i.e. stored in variables) data. This isn't a bug, but you should know about it.
  28. • Scripting Additions may have problems in low memory conditions.
  29. • OSA calls within other OSA calls are reported to be broken.
  30. • Whose clauses within whose clauses don't work with Quill
  31. • Long strings can cause problems: crashes or invalid lengths.
  32. • The AppleScript constants named "Space", "Tab", and "Return" don't work. Use literal strings " ", "\t" and "\r" instead for now.
  33. • The "from" parameter in error handlers doesn't correctly return the offending object & application from which the error came.
  34. • AppleScript loads its code segments into the System heap, and can sometimes manage to (almost) completely fill the heap. When this happens, the entire Mac slows to a crawl as the Memory Manager thrashes. Quitting other apps can free up memory. The problem will go away when you close the last component connection to AppleScript, which will then dispose its code segments.
  35. • Certain scripts may crash the AppleScript unparser if they are the first thing AppleScript tries to unparse. You can work around this by opening a different script first, then the problematic one.
  36. • The Generic Scripting Component does not implement the OSAScriptingComponentName() call yet. You can call GetComponentInfo() to get its name, if you really need to.
  37.  
  38. Undocumented Features:
  39. • AppleScript converts some events to special syntax:
  40.     Count Elements  Each class  ==>  Number of class of obj
  41.     Create  ==>  Make
  42.     Set Data can only be done using Set/Copy
  43.     Get Data can only be done using Get
  44. • Named actors are global across an entire component instance. This can cause odd behavior in Toy Surprise, since one open script can reference a named actor in another open script.
  45. • Actor properties are persistent in applets and droplets.  When a property value changes, its new value is written to the script file each time it is run.  Bug: this does not happen when it is executed from the scripting menu.
  46.  
  47.  
  48. Toy Surprise Notes:
  49. -----------------------------
  50. No debug version:
  51. • The Toy Surprise manual refers to two configurations of Toy Surprise, one for debugging and one not. We're really only sending out the no-debug version.
  52.  
  53. Online help:
  54. • Toy Surprise has a nearly complete set of help balloons that explain menu commands and window items. (One notable omission is the Save As dialog.)
  55.  
  56. Undocumented features:
  57. • Holding down the Control key while choosing Save or Save As will force the script to be saved as text. (Toy Surprise won't even attempt to compile it to see if it can be saved in compiled form.) This might be useful if, for instance, you have a script that crashes the compiler and need to save it somehow.
  58. • If you copy a 'snd ' resource with id 128 into Toy Surprise, that sound will be played instead of the system beep when a syntax or execution error happens. The historically correct sound for this is "Razz SysBark", but use whatever catches your fancy. (Warning: Extremely large sounds may overflow TS's heap.)
  59.  
  60.  
  61. Toy Surprise Problems:
  62. -----------------------------
  63. • There have been reports of incompatibilities with QuicKeys and with Super Boomerang. I can't reproduce these with QuicKeys 2.1.2 and Super Boomerang 3.0.2 or 4.0.1.
  64. • There are still some problems with non-Roman writing systems. In particular, tabs don't work very well in right-to-left text.
  65. • Application terminologies whose text form is longer than 32,000 characters can't be displayed due to TextEdit's limitations. Yes, this will be fixed! 
  66. • You can't view non-English terminologies of any application that includes an English terminology.
  67. • The Paste Description command doesn't know which application put the object specifier on the Clipboard, so AppleScript can't correctly unparse any terminology thats not part of the Core suite. We'll figure this out soon.
  68. • The script text can sometimes show some cosmetic glitches after an execution error. Redrawing the window will correct this.
  69. • Some menu help balloons don't show up properly. I'm not yet sure why.
  70. • Windows sometimes don't zoom to the right size.
  71. • If Toy Surprise (and all other running apps) suddenly become incredibly slow after you've been compiling or running scripts, it's probably because AppleScript's code has nearly filled the System heap. This will cause the Memory Manager to thrash and slow down everything. (If you drop into MacsBug and enter "dx;ht" you can check the free space in the System heap.) Quitting other apps can alleviate this by giving the System heap room to grow; and closing all connections to AppleScript (i.e. quitting Toy Surprise) will release AppleScript's code and free up space.
  72.  Later betas of AppleScript will (1) use less System heap storage and (2) manage that storage more intelligently to prevent this from happening.
  73.  
  74.  
  75. Scriptable Finder Problems:
  76. -----------------------------
  77. • The scriptable Finder has several problems with dragging and dropping. It may refuse to let you drop a file on an application, even if the application normally accepts the file.
  78. • The Finder has some trouble with "every" in "repeat" loops. In particular
  79.     repeat with x in every item of folder "foo"
  80.  won't do the right thing; it'll start delving into sub-folders of foo. Instead, use
  81.     repeat with x in folder "foo"
  82. • The Finder has trouble resolving parameters that are sent as aliases (type 'alis') not object specifiers. For instance, it will complain if you try to access a property of an object specified as an alias. This causes mondo problems for droplets, since the parameter to the "open" event ('odoc') is sent as a list of alias records. It can be hard to send those parameters back to the Finder and have it do useful things with them.
  83. • Many of the events and properties documented in the Finder's terminology (aete) and event suite are at best partially implemented right now.
  84. • None of the file sharing commands are scriptable or recordable.
  85. • None of the finder control panels are scriptable or recordable.
  86. • Application partition sizes cannot be scripted or recorded.
  87. • Outline views cannot be scripted or recorded.
  88. • pFileType / pCreatorType properties do not work.
  89. • The whose clause 'every item whose name contains "e"' does not work, but the equivalent clause 'every item of desktop whose name contains "e"' does work.
  90. • Results are not returned for many events (e.g. create new folder, delete file, put away, move, and make alias).
  91. • "make <class> with properties" doesn't work, because the result of the creation are not known to the Finder Scripting Extension.
  92. • "make folder" doesn't work if the direct parameter is a window.  Unfortunately, this is how the "New Folder" command is recorded.  (Delete the clause "container window of" from the recorded event and it works).
  93. • The script command 'for x in every item of folder "example"' does not work due to a bug in the way the Finder treats elements of an "every" token.  To work around this problem, assign 'every item of folder "example"' to a variable (i.e., 'set var to every item of folder "example"'), and then execute 'for x in every item of var'
  94. • The Scriptable Finder uses a 50K heap to build its result events in.  If this heap fills up, a reply cannot be returned.  This will have some impact on recording operations involving a large number of files.
  95. • Long Finder operations (e.g. copying large files) can cause AppleScript to time out, as the Finder never resets the AppleEvent timeout timer.
  96. • Certain events (e.g. Empty trash, move, copy and erase disk) can bring up unwanted dialog boxes.
  97. • If you Get Info on the application Toy Surprise, you will find that you cannot change its application partition size.  This is caused by a Finder bug, not anything wrong with Toy Surprise.
  98. • The gestalt selector gestaltScriptableFinder is not removed if the Scriptable Finder quits.
  99. • Move and copy do not always work (if, for example, source objects from different containers are specified)
  100. • Items are not repositioned when moved or copied into a new container--they remain at the same offset from (0,0) that they occupied in their previous container.
  101. • pVisible of cWindow is not implemented.
  102. • pInsertionLocation and pClipboard of cApplication are not implemented.
  103. • The trash class is called "trashcan" and the desktop is called "finder desktop" in order to avoid conflict with the properties named "trash" and "desktop", respectively.
  104. • The property pIconBitmap will not provide a PICT of the icon; you always get an icon family.
  105. • Many properties of the desktop (e.g. name) cannot be accessed.
  106.  
  107.  
  108. Quill Problems:
  109. -----------------------------
  110. • Error messages are, in many cases, vague and unhelpful.
  111. • The Move Event does not return a reply (it's supposed to return an object descriptor describing the moved object in its new location).
  112. • If you cancel out of the Print Dialog, the Print Event is still sent.  (The Print Event handler is putting up the Print Dialog in response to the Print Event, so, by the time you cancel, the Print Event has already been sent.  This may or may not be a bug, but it is very confusing to people.)
  113. • When you create a new text element of class word, paragraph, or text item, Quill does NOT insert the appropriate delimiter (space, carriage return, or comma, respectively).  So, if you don't include the delimiter(s) in your initial data, the new element may not be of the desired class - it'll just be some text.  For now, it's probably best to (a) always use cText for the desired class, and (b) include the appropriate delimiters in the initial data.
  114. • Quill is not very good at handling situations where you try to put more than 32000 characters in a window.  You may get odd error messages, or none.
  115. • If you try to Move a text range that represents a list - e.g., "move words 1 through 3 to end" - the text elements will get reversed in the move.  Instead, try "move the text from word 1 to word 3 to end".
  116. • If you select some text, then hit the Delete key, Quill records that as 
  117.             set selection to ""
  118.     instead of
  119.             delete selection
  120. This plays back correctly, but many people find it confusing. Even less intuitive is selecting text, hitting Delete, then typing new text. Quill records this as a single event:
  121.             set selection to "new text"
  122. Again, this is correct but unintuitive.
  123. • Deactivated Quill windows do NOT display their selected text in boxed form.
  124. • Quill does not always properly handle situations in which windows span two or more monitors.  
  125. • Quill can't get and set the Clipboard properly when it's not the active application. (It won't get the latest Clipboard data if it's been changed by another app; and if it writes to the Clipboard, other apps won't notice.) This is a bug in the Process Manager and applies to all applications. You just notice it a lot more when scripting, since ordinarily you can't Cut and Paste in an inactive application.